{#
/**
 * @file
 * Theme override for a fieldset element and its children.
 *
 * Available variables:
 * - attributes: HTML attributes for the fieldset element.
 * - errors: (optional) Any errors for this fieldset element, may not be set.
 * - required: Boolean indicating whether the fieldeset element is required.
 * - legend: The legend element containing the following properties:
 *   - title: Title of the fieldset, intended for use as the text of the legend.
 *   - attributes: HTML attributes to apply to the legend.
 * - description: The description element containing the following properties:
 *   - content: The description content of the fieldset.
 *   - attributes: HTML attributes to apply to the description container.
 * - children: The rendered child elements of the fieldset.
 * - prefix: The content to add before the fieldset children.
 * - suffix: The content to add after the fieldset children.
 *
 * @see template_preprocess_fieldset()
 */
#}

{# FILDSET CLASSES #}
{%
  set classes = [
    'form-fieldset',
    'js-form-item',
    'form-item',
    'js-form-wrapper',
    'form-wrapper',
  ]
%}
{%
  set legend_classes = [
  'h2',
  required ? 'js-form-required',
  required ? 'form-required',
]
%}

{# TEMPLATE #}
<fieldset{{ attributes.addClass(classes) }}>
  {#  Always wrap fieldset legends in a SPAN for CSS positioning. #}
  <legend{{ legend.attributes.addClass(legend_classes) }}>{{ legend.title }}</legend>
  {% if errors %}
    <div>
      {{ errors }}
    </div>
  {% endif %}
  {% if prefix %}
    <span class="field-prefix">{{ prefix }}</span>
  {% endif %}
  {{ children }}
  {% if suffix %}
    <span class="field-suffix">{{ suffix }}</span>
  {% endif %}
  {% if description.content %}
    <div{{ description.attributes.addClass('description') }}>{{ description.content }}</div>
  {% endif %}
</fieldset>
